import unicodedata

def get_script(char):
    codepoint = ord(char)

    # Faixas Unicode mais comuns em ataques
    if 0x0041 <= codepoint <= 0x007A:
        return "LATIN"
    elif 0x00C0 <= codepoint <= 0x024F:
        return "LATIN"
    elif 0x0370 <= codepoint <= 0x03FF:
        return "GREEK"
    elif 0x0400 <= codepoint <= 0x04FF:
        return "CYRILLIC"
    elif 0x2160 <= codepoint <= 0x2188:
        return "ROMAN_NUMERAL"
    else:
        return "OTHER"

def detectar_homoglifo(texto):
    scripts = set()

    for char in texto:
        if char.isalpha():
            scripts.add(get_script(char))

    return len(scripts) > 1, scripts


# Testes
testes = [
    "paypal.com",
    "paypa𝐼.com",
    "gοogle.com",
    "usuario_normal"
]

for t in testes:
    suspeito, scripts = detectar_homoglifo(t)
    print(f"{t} -> Suspeito: {suspeito}, Scripts: {scripts}")
